package com.wf.context;

/**
 * 基础上下文类，用于在多线程环境下存储和获取当前线程的用户ID
 */
public class BaseContext {

    // 使用ThreadLocal存储每个线程独有的用户ID，以实现线程安全的数据存储
    public static ThreadLocal<Long> threadLocal = new ThreadLocal<>();

    /**
     * 设置当前线程的用户ID
     *
     * @param id 当前线程要设置的用户ID
     */
    public static void setCurrentId(Long id) {
        threadLocal.set(id);
    }

    /**
     * 获取当前线程的用户ID
     *
     * @return 当前线程存储的用户ID
     */
    public static Long getCurrentId() {
        return threadLocal.get();
    }

    /**
     * 移除当前线程的用户ID
     * 用于清理线程本地存储，防止内存泄漏
     */
    public static void removeCurrentId() {
        threadLocal.remove();
    }

}
